# coding: utf-8
# author: t_wolf

from variables import *

CONFIGS = {
    'FRAME': {
        'DEBUG': True,
        'DEBUG_SQL': False,
        'LOG_LEVEL': 'DEV',
        'LOG_NAME': 'frame.log',
        'APP_PATH': 'apps',                      # 应用目录
        'MULTI_APP': True,                       # 是否开启多App
        'MAX_APP': 16,                           # App最大数量(需要与Redis数据库数量配置相同)
        'PLUGIN_PATH': 'plugins',                # 插件目录
        'share_pool_enabled': True,              # 是否启用共享库
        'share_pool_type': 'sqlite',              # 共享库类型[redis|files|sqlite]
        'redis_options': {
            'host': '127.0.0.1',
            'port': 6379,
            'db': 0,
        },
        'RUN_OPTIONS': {
            'MODE': 'DEFAULT',                   # 运行模式, DEFAULT为webpy, UWSGI为使用uwsgi启动
            'ENV_LOG': 'webpy.log',              # web.py自身日志输出
            'DEFAULT': {
                'LISTEN_PORT': 18088,            # 监听端口
            },
            'UWSGI': {                           # 使用UWSGI方式启动,需要手动配置framework/uwsgi.ini配置文件
                'uwsgi_path': '',                # uwsgi路径配置(如果UWSGI命令在系统PATH中,可以为空)
                'http': 18088,                   # uwsgi监听的Http端口
                'stats': 19090,                  # 应用状态监控端口
                'workers': 4,                    # worker数量
                'threads': 4,                    # 每个worker的线程数
                'vacuum': 'true',                # 打开性能优化
                'disable_logging': 'true'        # 禁用日志
            }
        }
    },
    'APP': {
        'app_name': '',                          # app_name为空则默认使用app目录名称为app名称
        'url_mode': 'default',                   # url模式, dynamic: 动态扫描应用目录; default: 传统模式配置
        'url_map': '',                           # 使用的url_map的参数名,在urlmaps.py文件中配置(当url_mode为default时,该值有效)
        'pages_path': 'framework/pages',         # 页面模板目录
        'pages_layout': '',                      # 页面基础模板
        'redirect_time': 5,                      # 页面跳转等待时间
        'redis_enabled': False,
        'redis_options': {
            'host': '127.0.0.1',
            'port': 6379,
        },
        'db_enabled': False,                     # 启用数据库连接
        'db': {                                  # 数据库相关参数(使用mysql数据库)
            'default': {
                'type': 'mysql',
                'host': '127.0.0.1',
                'port': 3306,
                'username': 'root',
                'password': '1qaz!QAZ',
                'database': 'frame',
                'rollback_on_error': True
            }
        },
        'session_enabled': False,                # 启用会话
        'session_options': {                     # 会话参数
            'store_type': 'redis',               # session保存方式[redis(推荐)|mysql|sqlite|memory(simple, 用于default模式)]
            'target_db': '',                     # 数据库连接的db[key], session保存方式为mysql和sqlite时需要填写
            'session_table': 'sessions',         # 为存储session的表名, session保存方式为mysql和sqlite时需要填写
            'cookie_name': 'easy_web',
            'cookie_domain': None,
            'timeout': 3600,
            'ignore_expiry': True,
            'ignore_change_ip': False,
            'secret_key': '3u12m8xXo0is',
            'expired_message': 'Session expired.'
        },
        'pages': {                               # 跳转页面设置,填写页面相对路径
            'nolog': '',
            'expired': '',
        },
        'filters': {
            'pre_filters': [                     # 预处理过滤器需要接收tuple类型的数组, 数组为三个参数, 例: (test, None, None)
            ],
            'post_filters': [                    # 返回值过滤器需要接收tuple类型的数组, 数组为两个参数, 例: (test, None)
            ]
        }
    },
    'MESSAGE': {                                 # 消息内容短提示关联
        'nolog_message': 'authorize Failed.',
        'no_implement_method': '没有实现对应的请求或方法!',
    },
    'PAGES': {                                   # 跳转页面设置,填写页面相对路径
        'expired': '/expired',
    },
    'FILTERS': {
        'pre_filters': [                         # 预处理过滤器需要接收tuple类型的数组, 数组为三个参数, 例: (test, None, None)
        ],
        'post_filters': [                        # 返回值过滤器需要接收tuple类型的数组, 数组为两个参数, 例: (test, None)
        ]
    }
}
